package com.njdj.gps.kernel.service;

import java.util.List;
import java.util.Map;

import com.njdj.gps.common.page.PageList;
import com.njdj.gps.common.page.PageProperty;



/**
 * @Description: 基础Service接口，包含常用数据库操作。所有Service接口必须继承的接口
 * @author luj
 * @version 1.0
 * @created Feb 11, 2009
 */
public interface BaseService<T> {
	
	/**
     * @Description:得到数据对象
     * @param param map参数
     * @return 实体对象
     */
	public abstract T getModel(Map param);
	
	/**
     * @Description:创建数据对象
     * @param po 实体对象
     */
	public abstract void insert(T model);
	
	/**
     * @Description:单条修改数据对象
     * @param po 实体对象
     * @return 所影响的行数
     */
	public abstract int update(T model);
	
	/**
     * @Description:批量修改数据对象
     * @param param map参数
     * @return 所影响的行数
     */
	public abstract int updateList(Map param);
	
	/**
     * @Description:删除数据对象
     * @param param map参数
     * @return 所影响的行数
     */
	public abstract void delete(Map param);
	
	/**
     * @Description:得到数据对象列表按分页条件 当pp.getNpageSize=0时返回所有
     * @param pp PageProperty对象
     * @return 实体列表
     */
	public abstract PageList<T> getPageList(PageProperty pp);
	
	/**
     * @Description:得到数据对象列表
     * @param param map参数
     * @return 实体列表
     */
	public abstract List<T> listModel(Map param);
	
	
}
